#include<bits/stdc++.h>
#define int long long
#define N 3000005
using namespace std;
int n,m,q,k;
int fac[N],inv[N];
const int mod=998244353;
int Pow(int x,int y){
    int z=1;
    while(y){
        if(y&1) z=z*x%mod;
        x=x*x%mod;
        y>>=1;
    }
    return z;
}
void init(){
    fac[0]=inv[0]=1;
    for(int i=1;i<=m;i++) fac[i]=fac[i-1]*i%mod;
    inv[m]=Pow(fac[m],mod-2);
    for(int i=m-1;i>=1;i--) inv[i]=inv[i+1]*(i+1)%mod;
}
int C(int n,int m){
    if(n<0||m<0||n<m) return 0;
    return fac[n]*inv[m]%mod*inv[n-m]%mod;
}
signed main(){
    freopen("sequence.in","r",stdin);
    freopen("sequence.out","w",stdout);
    scanf("%lld %lld %lld %lld",&n,&m,&q,&k);
    init();
    if(q<m) printf("0\n");
    else{
        int ans=0;
        for(int i=0,j=1;i<=m;i++,j=mod-j)
            ans=(ans+j*C(m,i)%mod*Pow((n-i)*k%mod,q)%mod)%mod;
        printf("%lld\n",(n-m+1)%mod*Pow(Pow(k,m),mod-2)%mod*ans%mod);
    }
    return 0;
}